/**
 * @file langue.c
 * @brief Fichier source du module langue.
 *
 * @author Rachid Delory, Mamadou Keita, Florian Bernard
 */

/* *********************************************************************

                       Librairies de langue                          

********************************************************************* */

#include "langue.h"

/* *********************************************************************

                        Fonctions                                      

********************************************************************* */

void init_Lan(Langue * langue)
{
  if(langue)
    {
      langue->id = 0;
      langue->libelle = NULL;
      langue->maj = 0;
      langue->sup = 0;
    }
}

void liberer_Lan(Langue * langue)
{
  if(langue)
    {
      langue->id = 0;
      if(langue->libelle)
	{
	  free(langue->libelle);
	  langue->libelle = NULL;
	}
    }
}

void * creer_Lan()
{
  Langue *langue;
  langue = (Langue *) malloc ( 1 * sizeof(Langue));
  init_Lan(langue);
  return langue;
}

void detruire_Lan(Langue ** langue)
{
  if((*langue))
    {
      liberer_Lan((*langue));
      free((*langue));
      (*langue) = NULL;
    }
}

void copier_Lan(Langue **dest, const Langue *src)
{
  if((*dest) == NULL)
    {
      (*dest) = creer_Lan();
    }
  (*dest)->id = src->id;
  copier_Uti(&((*dest)->libelle), src->libelle);
}

unsigned int getId_Lan(const Langue * ptr)
{
	return ptr->id;
}

void setId_Lan(Langue *ptr, const unsigned int val)
{
	ptr->id = val;
}

char * getLibelle_Lan(const Langue * ptr)
{
	return ptr->libelle;
}

void setLibelle_Lan(Langue *ptr, const char * val)
{
  if(ptr)
    {
      if(ptr->libelle)
	{
	  free(ptr->libelle);
	  ptr->libelle = NULL;
	}
      if(val)
	strcpy(ptr->libelle, val);
    }
}

void setMaj_Lan(Langue *ptr, const char b)
{
  if(ptr)
    {
      ptr->maj = b;
      if(b == 1)
	ptr->sup = !b;
    }
}

char getMaj_Lan(const Langue *ptr)
{
  if(ptr)
    return ptr->maj;
  return 0;
}

void setSup_Lan(Langue *ptr, const char b)
{
  if(ptr)
    {
      ptr->sup = b;
      if(b == 1)
	ptr->maj = !b;
    }
}

char getSup_Lan(const Langue *ptr)
{
  if(ptr)
    return ptr->sup;
  return 0;
}
